package com.myebills.ebpsfrontend.cust.controller;

import com.checkfree.isolutions.customer.persist.User;import com.checkfree.isolutions.customer.persist.Account;import com.checkfree.isolutions.statement.persist.Statement;

/**
 * Defines static constants that can be used by servlets and imported into JSP's to help
 * keep names of shared context, init, session, and request parameters and attributes in sync.
 */
public class EbppxConstants {

    /**
     * Name of request attribute that can be used to access EbppxInputFieldMessages.
     */
    public static final String EBPPX_INPUT_FIELD_MESSAGES = "EbppxInputFieldMessages";

    /**
     * Name of request parameter that can be used to access i-Series user object.
     */
    public static final String CFI_USER = User.class.getName();
    /**
     * Name of request parameter that can be used to access i-Series user object.
     *
     * @deprecated Replaced by {@link #CFI_USER}
     */
    public static final String BGUSER = CFI_USER;

    /**
     * Name of request parameter that can be used to access i-Series account object.
     */
    public static final String CFI_ACCOUNT = Account.class.getName();
    /**
     * Name of request parameter that can be used to access i-Series account object.
     *
     * @deprecated Replaced by {@link #CFI_ACCOUNT}
     */
    public static final String BGACCOUNT = CFI_ACCOUNT;

    /**
     * Name of request parameter that can be used to access i-Series statement object.
     */
    public static final String CFI_STATEMENT = Statement.class.getName();
    /**
     * Name of request parameter that can be used to access i-Series statement object.
     *
     * @deprecated Replaced by {@link #CFI_STATEMENT}
     */
    public static final String BGSTATEMENT = CFI_STATEMENT;

    /**
     * Name of request parameter that can be used to access i-Series account object.
     */
    public static final String CFI_ACCOUNTS = Account.class.getName() + "s";
    /**
     * Name of request parameter that can be used to access i-Series account object.
     *
     * @deprecated Replaced by {@link #CFI_ACCOUNTS}
     */
    public static final String BGACCOUNTS = CFI_ACCOUNTS;

    /**
     * Name of request parameter that can be used to access i-Series statement object.
     */
    public static final String CFI_STATEMENTS = Statement.class.getName() + "s";
    /**
     * Name of request parameter that can be used to access i-Series statement object.
     *
     * @deprecated Replaced by {@link #CFI_STATEMENTS}
     */
    public static final String BGSTATEMENTS = CFI_STATEMENTS;

    /**
     * Name of request parameter that can be used to access optional message to be placed on a page.
     */
    public static final String MESSAGE_0 = "message0";

    /**
     * Name of request parameter that can be used to access optional message to be placed on a page.
     */
    public static final String MESSAGE_1 = "message1";

    /**
     * Name of request parameter that can be used to access optional message to be placed on a page.
     */
    public static final String MESSAGE_2 = "message2";

    /**
     * Name of request parameter that can be used to access optional message to be placed on a page.
     */
    public static final String MESSAGE_3  = "message3";

    /**
     * Name of request or web-app context parameter
     * that can be used to access URL of View JSP associated with a Controller servlet.
     * If this parameter is defined in request scope, it overrides the one in context scope.
     */
    public static final String URL_JSP_PARAM = "urlJsp";

    /**
     * Name of context parameter used to access URL to redirect to after logon failure.
     */
    public static final String URL_LOGON_FAILURE_PARAM = "urlLogonFailure";

    /**
     * Name of context parameter used to access URL to redirect to after logon success.
     */
    public static final String URL_MYBILLS_SUCCESS_PARAM = "urlMyBillsSuccess";

    /**
     * Name of context parameter used to access URL to redirect to after logon success.
     */
    public static final String URL_PAY_MYBILL_SUCCESS_PARAM = "urlPayMyBillSuccess";

    /**
     * Name of context parameter used to access URL to redirect to after logon success.
     */
    public static final String URL_MY_PAYMENT_HISTORY_SUCCESS_PARAM = "urlMyPaymentHistorySuccess";

    /**
     * Name of context parameter used to access URL to redirect to after logon success.
     */
    public static final String URL_MY_BILLDELIVERY_SUCCESS_PARAM = "urlMyBillDeliverySuccess";

    /**
     * Name of context parameter used to access URL to redirect to after logon success.
     */
    public static final String URL_MY_PHONEBOOK_SUCCESS_PARAM = "urlMyPhoneBookSuccess";

    /**
     * Name of context parameter used to access URL to redirect to after logon success.
     */
    public static final String URL_LOGON_SUCCESS_PARAM = "urlLogonSuccess";

    /**
     * Name of context parameter used to access URL to redirect to after CRM logon success.
     */
    public static final String URL_LOGON_CRM_SUCCESS_PARAM = "urlLogonCRMSuccess";

    /**
     * Name of context parameter used to access URL to redirect to after corporate logon success.
     */
    public static final String URL_LOGON_CORP_SUCCESS_PARAM = "urlLogonCorpSuccess";

    /**
     * Name of context parameter used to access URL to redirect to after corporate logon success.
     */
    public static final String URL_NEW_LOGON_CORP_SUCCESS_PARAM = "urlNewLogonCorpSuccess";

    /**
     * Name of context parameter used to access URL for un-handled servlet errors.
     */
    public static final String URL_ERROR_PAGE_PARAM = "urlError";

    /**
     * Name of request parameter used to indicate the user's logon password was just changed.
     */
    public static final String USER_PASSWORD_CHANGED = "passwordChanged";

    /**
     * Name of statement-id parameter
     */
    public static final String STATEMENT_ID = "statementId";

    /**
     * Name of account-id parameter
     */
    public static final String ACCOUNT_ID = "accountId";

    /**
     * Name of amount due parameter
     */
    public static final String PAYMENT_AMOUNT = "paymentAmount";

    /**
     * Name of property that associates User with phone num.
     */

    public static final String PHONE_PROPERTY = "phone";

    /**
     * Name of request or web-app context parameter
     * that can be used to access URL of a form that referred to current page.
     * If this parameter is defined in request scope, it overrides the one in context scope.
     */
    public static final String URL_REFERRER_PARAM = "urlReferrer";

    // For Logging Purposes
    public static final int FIELD_SIZE = 10;
    public static final int CONFIRM_FIELD_SIZE = 4;
    public static final String NEW_ACCOUNTS = "newAccounts";
    public static final String LISTING_COLOR = "#99CC33";
    public static final String WHITE_COLOR = "white";

    public static final String EMAIL_CHANGE_DELIVERY = "AC001";
    public static final String DOWNLOAD_PDF = "AC002";
    public static final String DOWNLOAD_CSV = "AC003";
    public static final String PDF_PRINT = "AC004";
    public static final String EMAIL_CHANGE_NOTIFICATION = "AC005";
    public static final String SMS_NO_CHANGE = "AC006";
    public static final String BILL_DELIVERY_ADHOC_REQUEST = "AC007";
    public static final String BILL_DELIVERY_ADHOC_REQUEST_STATUS = "AC008";
    public static final String BILL_DELIVERY_SUBSCRIPTION_STATUS = "AC009";
    public static final String NOTIFICATION_VIA_EMAIL_STATUS = "AC010";
    public static final String NOTIFICATION_VIA_SMS_STATUS = "AC011";
    public static final String SMS_NOTIFY_SUBSCRIPTION = "AC012";
    public static final String SMS_NOTIFY_UNSUBSCRIPTION = "AC013";
    public static final String EMAIL_NOTIFY_SUBSCRIPTION = "AC014";
    public static final String EMAIL_NOTIFY_UNSUBSCRIPTION = "AC015";
    public static final String EMAIL_DELIVERY_SUBSCRIPTION = "AC016";
    public static final String EMAIL_DELIVERY_UNSUBSCRIPTION = "AC017";
    public static final String CUS_VIEW = "AC018";
    public static final String CSR_VIEW = "AC019";
    public static final String ACCOUNT_VIPTAG = "AC020";
    public static final String NO_PHYSICAL_BILL_SUBSCRIPTION = "AC021";
    public static final String NO_PHYSICAL_BILL_UNSUBSCRIPTION = "AC022";
    public static final String BILL_REPRINT_REQUEST = "AC023";
    public static final String BILL_REPRINT_CANCELLATION = "AC024";
    public static final String DOWNLOAD_PDF_FIRSTPAGE = "AC025";        //added by tzer kang    public static final String EBILL_MODIFY_DATE="modifyDate";        public static final String EBILL_REGISTER_DATE="registerDate";        public static final String EBILL_REGISTER_FLAG="ebillRegisterFlag";        public static final String EBILL_REGISTER_FLAG2="ebillRegisterFlag2";                    //done added 

    public static final String CUSTOMER = "OWNER";
    public static final String ADMINISTRATOR = "ADMIN";
    public static final String CSR_MANAGER = "CSRMANAGER";
    public static final String SUPER_CSR = "CSRSUPER";
    public static final String CSR = "CSR";  

    public static final String STATUS_CHANGED = "CHANGED";
    public static final String STATUS_VIEWED = "VIEWED";
    public static final String STATUS_DOWNLOADED = "DOWNLOADED";
    public static final String STATUS_REQUEST = "REQUEST";
    public static final String STATUS_SUCCESS = "SUCC";
    public static final String STATUS_CANCELLED = "CANCELLED";
    public static final String STATUS_GENERATED = "GENERATED";
    public static final String SELFCARE_ACKNOWLEDGEMENT = "selfCareAck";
    public static final String BILL_SUBSCRIPTIONS = "billSubscriptions";
    public static final String CONFIRM_BILL_SUBSCRIPTIONS = "confirmBillSubscriptions";
    public static final String ACCT_DETAILS = "acctDetails";

    public static final String FROM_STMTACCT = "STMTACCT";
    public static final String FROM_TELSUMM = "TELSUMM";

    public static final String ACCOUNT_TAGGED = "TAGGED";
    public static final String BUTTON_ENABLED = "BUTTON_ENABLED";
    public static final String UPDATE_MSG_CSS = "UPDATE_MSG_CSS";


	// ECS Specific
    /**
     * Name of context parameter used to get the timestamp parameter name from ECS
     */
    public static final String ECS_TIMESTAMP_PARAM_NAME = "ecsTimestampParamName";

    /**
     * Name of context parameter used to get the encrypted value parameter name from ECS
     */
    public static final String ECS_ENCRYPT_PARAM_NAME = "ecsEncrytParamName";

    /**
     * Name of parameter for valid ecs timestamp period
     */
    public static final String ECS_VALID_TIMESTAMP_PERIOD = "ecsValidTimestampPeriod";

    /**
     * Name of parameter for authentication algorithm to used with ECS
     */
    public static final String ECS_AUTHENTICATION_ALGO = "ecsAuthenticationAlgo";

    /**
     * Name of parameter for ECS hard key
     */
    public static final String ECS_HARD_KEY = "ecsHardKey";

    /**
     * Name of request parameter that can be used to access EbppxEcsUser object.
     */
    public static final String ECS_USER = "ecsUser";


     /* Name of random key generated for the encryption between navigation pages.
     */
    public static final String RANDOM_KEY = "randomKey";

	// Control Center Specific
    /**
     * Name of context parameter used to get the timestamp parameter name from CC
     */
    public static final String CC_TIMESTAMP_PARAM_NAME = "ccTimestampParamName";

    /**
     * Name of context parameter used to get the encrypted value parameter name from CC
     */
    public static final String CC_ENCRYPT_PARAM_NAME = "ccEncrytParamName";

    /**
     * Name of parameter for valid cc timestamp period
     */
    public static final String CC_VALID_TIMESTAMP_PERIOD = "ccValidTimestampPeriod";

    /**
     * Name of parameter for authentication algorithm to used with CC
     */
    public static final String CC_AUTHENTICATION_ALGO = "ccAuthenticationAlgo";

    /**
     * Name of parameter for CC hard key
     */
    public static final String CC_HARD_KEY = "ccHardKey";

    /**
     * Name of request parameter that can be used to access EbppxCcUser object.
     */

    public static final String CC_USER = "ccUser";


	//Others
    public static final String USER_LOGGED_ON = "loggedOnFlag";

    public static final String DATE_FORMAT="dd/MM/yyyy";

    public static final String TIME_FORMAT="HH:mm:ss";

    public static final String TIMEZONE="GMT+8:00";

    //Date Types
    public static int DATE = 0;
    public static int TIME = 1;
    public static int TEXT = 2;
    public static int FLOAT = 3;        public static final String passphrase = "X2q3j5k6E7r8l93tm2n7H5qp";
}
